package net.lcheng.manage.controller;

import net.lcheng.commons.utils.PageList;
import net.lcheng.model.PCategoryAttributeValue;
import net.lcheng.service.CategoryAttributeValService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.UUID;

/**
 * Created by LV on 2016/6/27.
 */
@Controller
public class CategoryAttributeValController {

    @Autowired
    private CategoryAttributeValService categoryAttributeValService;

    /**
     * 获取属性值列表
     * @param model
     * @param attributeId
     * @param pageIndex
     * @return
     */
    @RequestMapping(value = "/category/findAllAttributeValByAttributeId/{attributeId}",method = RequestMethod.GET)
    public String findAllAttributeValByAttributeId(Model model, @PathVariable("attributeId") String attributeId,
                                                   @RequestParam(defaultValue = "1") int pageIndex){
        model.addAttribute("attributeId",attributeId);
        PageList<PCategoryAttributeValue> pageList=categoryAttributeValService.
                findAllCategoryAttributeValue(attributeId,pageIndex,7);
       model.addAttribute("aulist",pageList.list);

        return "/category_attribute/category_attribute_val_list";
    }

    /**
     * 添加分类属性
     * @return
     */
    @RequestMapping(value = "/category/addAttributeValue/{attributeId}",method = RequestMethod.GET)
    public String addAttributeValue(Model model,@PathVariable("attributeId") String attributeId){
        model.addAttribute("attributeId",attributeId);
        return "/category_attribute/category_attribute_val_add";
    }

    /**
     * 保存分类属性
     * @param attributeValue
     * @return
     */
    @RequestMapping(value = "/category/savingAttributeValue",method = RequestMethod.POST)
    public String savingAttributeValue(@ModelAttribute("attributeValue") PCategoryAttributeValue attributeValue){
        attributeValue.setValueId(UUID.randomUUID().toString());
        attributeValue.setCreateOn(new Date());
        categoryAttributeValService.addCategoryAttributeVal(attributeValue);
        return "redirect:/category/findAllAttributeValByAttributeId/"+attributeValue.getpCategoryAttributeAttributeId();
    }

    /**
     * 编辑分类属性
     * @param attributeValueId
     * @return
     */
    @RequestMapping(value = "/category/editAttributeVal/{attributeValueId}",method = RequestMethod.GET)
    public String editAttributeVal(Model model,@PathVariable("attributeValueId") String attributeValueId){
        PCategoryAttributeValue attributeValue=categoryAttributeValService.findCategoryAttributeValByPrimaryKey(attributeValueId);
        model.addAttribute("attributeValue",attributeValue);
        return "category_attribute/category_attribute_val_edit";
    }

    /**
     * 保存修改属性
     * @param attributeValue
     * @return
     */
    @RequestMapping(value = "/category/savingEditAttributeVal",method = RequestMethod.POST)
    public String savingEditAttributeVal(@ModelAttribute("attributeValue") PCategoryAttributeValue attributeValue){
        categoryAttributeValService.updateCategoryAttributeValByPrimaryKey(attributeValue);
        return "redirect:/category/findAllAttributeValByAttributeId/"+attributeValue.getpCategoryAttributeAttributeId();
    }

    /**
     * 删除属性值
     * @param attributeValId
     * @return
     */
    @RequestMapping(value = "/category/deleteAttributeVal/{attributeValId}")
    public String deleteAttributeVal(@PathVariable("attributeValId") String attributeValId){
        PCategoryAttributeValue attributeValue=categoryAttributeValService.findCategoryAttributeValByPrimaryKey(attributeValId);
        categoryAttributeValService.deleteCategoryAttributeValByPrimaryKey(attributeValId);
        return "redirect:/category/findAllAttributeValByAttributeId/"+attributeValue.getpCategoryAttributeAttributeId();
    }
}
